A block signature (also called a data integrity field or DIF) is commonly added to a block (also referred to a segment) of data in order to protect against data errors, particularly (but not exclusively) in data storage applications. For example, the T10 Technical Committee of the InterNational Committee for Information Technology Standards (INCITS), which is responsible for standardization of the Small Computer System Interface (SCSI) storage protocol, has standardized the use of a DIF to support end-to-end data protection in storage networks. This DIF is appended to each SCSI data block (also referred to as a sector and typically, although not necessarily, 512 bytes in size). It comprises eight bytes including a 16-bit “Block Guard” cyclic redundancy code (CRC), a 16-bit “Application Tag,” and a 32-bit “Reference Tag,” which is incremented to ensure that blocks are maintained in the proper order.
The SCSI DIF is just one well-known type of data integrity field, and many other examples exist. In the context of the present patent application and in the claims, the term “signature” should be understood as referring generally to any data field that is computed over and associated with certain data, such as a data block, and can then be used in verifying that the data has not been corrupted. The signature can either be appended to its associated data, or stored in another location. Verifying a signature (for example, when reading a data block) ensures that that the data was not altered since the signature was calculated.
InfiniBand™ (IB) is a switched-fabric communications link primarily used in high-performance computing. It has been standardized by the InfiniBand Trade Association. Computing devices (host processors and peripherals) connect to the IB fabric via a network interface adapter, which is referred to in IB parlance as a channel adapter. Host processors (or hosts) use a host channel adapter (HCA), while peripheral devices use a target channel adapter (TCA).